class LineasController < ApplicationController
  layout "menuprincipal"
  before_filter :login_required


  def consulta
    @lineas = Linea.all
  end

  # GET /lineas
  # GET /lineas.xml
  def index
    @lineas = Linea.all

    respond_to do |format|
      format.html # index.html.erb
      format.xml  { render :xml => @lineas }
    end
  end

  # GET /lineas/1
  # GET /lineas/1.xml
  def show
    @linea = Linea.find(params[:id])
    @lineaprofesores=Lineaprofesor.find(:all, :conditions => ["linea_id = ?", @linea.id])
    
    respond_to do |format|
      format.html # show.html.erb
      format.xml  { render :xml => @linea }
    end
  end

  # GET /lineas/new
  # GET /lineas/new.xml
  def new
    @linea = Linea.new
    @profesores = Profesor.find(:all)
    @lineaprofesores=Lineaprofesor.new
    respond_to do |format|
      format.html # new.html.erb
      format.xml  { render :xml => @linea }
    end
  end

  # GET /lineas/1/edit
  def edit
    @linea = Linea.find(params[:id])
    @profesores = Profesor.find(:all) 
    idlinea = params[:id]
    @lineaprofesores=Lineaprofesor.find(:all, :conditions => ["linea_id = ?", idlinea])
  end

  # POST /lineas
  # POST /lineas.xml
  def create
    @linea = Linea.new(params[:linea])    
    respond_to do |format|
      if @linea.save
        lintut = params[:profesors]
        if lintut
          lintut.each do |order_id, do_it|
          if do_it == "si"
            @lineaprofesores = Lineaprofesor.new
            @lineaprofesores.profesor_id=order_id;
            @lineaprofesores.linea_id=@linea.id;
            @lineaprofesores.save
          end
          end
          
    
        flash[:notice] = 'Linea fue creada satisfactoriamente .'
        format.html { redirect_to(@linea) }
        format.xml  { render :xml => @linea, :status => :created, :location => @linea }
        else
          @profesores = Profesor.find(:all)
          @lineaprofesores=Lineaprofesor.new
          format.html { render :action => "new" }
          format.xml  { render :xml => @linea.errors, :status => :unprocessable_entity }
        end
      else
        @profesores = Profesor.find(:all)
        @lineaprofesores=Lineaprofesor.new
        format.html { render :action => "new" }
        format.xml  { render :xml => @linea.errors, :status => :unprocessable_entity }
      end
    end
  end

  # PUT /lineas/1
  # PUT /lineas/1.xml
  def update
    @linea = Linea.find(params[:id])
    #primero se borran todos los tutores asociados a la linea de investigacion a actualizar
    Lineaprofesor.delete_all(["linea_id = ?", @linea.id]) 
    #Lineaprofesor.destroy_all(["linea_id = ?", @linea.id])
    lintut = params[:profesors]
    if lintut
      lintut.each do |order_id, do_it|
      if do_it == "si"
        @lineaprofesores = Lineaprofesor.new
        @lineaprofesores.profesor_id=order_id;
        @lineaprofesores.linea_id=params[:id];
        @lineaprofesores.save
      end
      end
    end  

    respond_to do |format|
      if @linea.update_attributes(params[:linea])
        flash[:notice] = 'Linea fue actualizada satisfactoriamente.'
        format.html { redirect_to(@linea) }
        format.xml  { head :ok }
      else
        format.html { render :action => "edit" }
        format.xml  { render :xml => @linea.errors, :status => :unprocessable_entity }
      end
    end
  end

  # DELETE /lineas/1
  # DELETE /lineas/1.xml
  def destroy
    Lineaprofesor.delete_all(["linea_id = ?", params[:id]]) 
    @linea = Linea.find(params[:id])
    @linea.destroy

    respond_to do |format|
      format.html { redirect_to(lineas_url) }
      format.xml  { head :ok }
    end
  end
end
